package com.xxxx.service;

import com.xxxx.entity.User;
import com.xxxx.entity.vo.MessageModel;
import com.xxxx.mapper.UserMapper;
import com.xxxx.util.GetSqlSession;
import com.xxxx.util.StringUtil;
import org.apache.ibatis.session.SqlSession;

public class UserService {
    public MessageModel userLogin(String uemail, String upwd) {
        MessageModel messageModel = new MessageModel();

        //回显数据
        User u = new User();
        u.setUserEmail(uemail);
        u.setUserPwd(upwd);
        messageModel.setObject(u);

        //1.参数的非空判断
        if (StringUtil.isEmpty(uemail) || StringUtil.isEmpty(upwd)) {
            //将状态码, 提示信息, 回显数据设置到消息模型对象中, 返回消息模型对象
            messageModel.setCode(0);
            messageModel.setMsg("电子邮箱和密码不能为空!");

            return messageModel;
        }
        //2.调用mapper层(Dao)层的查询方法, 通过电子邮箱查询用户对象
        SqlSession session = GetSqlSession.createSqlSession();
        UserMapper userMapper = session.getMapper(UserMapper.class);
        User user = userMapper.queryUserByEmail(uemail);


        //3.判断用户对象是否为空
        if (user == null){
            //将状态码, 提示信息, 回显数据设置到消息模型对象中, 返回消息模型对象
            messageModel.setCode(0);
            messageModel.setMsg("邮箱不存在!");
            return messageModel;
        }

        //4.判断数据库中查询到的用户密码与前台传递过来的密码作比较
        if (!upwd.equals(user.getUserPwd())) {
            //如果不相等, 将状态码, 提示信息, 回显数据设置到消息模型对象中, 返回消息模型对象
            messageModel.setCode(0);
            messageModel.setMsg("用户密码不正确!");
            return messageModel;
        }

        //5.登录成功, 将用户信息设置到消息模型中
        messageModel.setObject(user);

        return messageModel;
    }
}
